package com.seven.tools.json;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

@JsonDeserialize(using = BaseJsonEnumDeserializer.class)
@JsonSerialize(using = BaseJsonEnumSerializer.class)
public interface BaseJsonEnum {
    
    /**
     * @description：必须在子类的重写方法返回具体的枚举name  ，例如return this.name()<br/>
     * @author： seven
     */
    String getCode();
    
    String getDes();
    
    static <E extends Enum<E>> BaseJsonEnum valueOf(String enumCode,Class<E> clazz) {
        BaseJsonEnum enumm = (BaseJsonEnum) Enum.valueOf(clazz, enumCode);
        return enumm;
    }
}